class Cart < ActiveRecord::Base
  attr_reader:items,:shop_id
  attr_writer:shop_id
  
  def initialize
    #装载CartItem的数组
    @items=[]
    #记录商铺ID
    @shop_id
  end
  
  #添加商品
  def add_product(product)
    #在购物车内查找是否存在该商品
    current_item = @items.find {|item| item.product == product}
    
    if current_item
      #若存在则将数量加1
      current_item.increment_quantity
    else
      #若不存在则将该产品转化为CartItem，载入购物车内
      current_item=CartItem.new(product)
      @items << current_item
    end
  end
  
  #改变商品数量
  def change_product_quantity(product,quantity)
    current_item=@items.find{|item| item.product==product}
    if current_item&&quantity>0
      current_item.quantity=quantity 
    end
  end
  
  #删除商品
  def delete_product_at(id)
    @items.delete_at(Integer(id))
  end
  
  #计算所有购物项总额
  def total_price
      @items.sum{|item| item.price}
  end
  
end
